package com.mango.demo.threadcase3;

/**
 * @Author：wlz
 * @Package：threadcase3
 * @Project：mythread
 * @name：ThreadDemo
 * @Date：2023/3/28 20:29
 * @Filename：ThreadDemo
 */

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 *
 * 多线程的第三种实现方式：
 * 特点：可以获取到多线程运行的结果
 *
 * 1，创建要给类Mycallable实现Callable接口
 * 2，重写call（是有返回值的，表示多线程运行的结果）
 *
 * 3，创建Mycallbable的对象（表示多线程要执行的任务）
 * 4，创建FuturTask的对象（作用管理多线程运行的结果）
 * 5，创建Thread类的对象，并启动（表示线程)
 */
public class ThreadDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Mycallable mc = new Mycallable();
        FutureTask<Integer> ft = new FutureTask<>(mc);
        Thread t1 = new Thread(ft);
        t1.start();
        Integer result = ft.get();
        System.out.println(result);
    }
}
